﻿/*
 * Created by SharpDevelop.
 * User: Zoila
 * Date: 03/11/2011
 * Time: 03:33 a.m.
 * 
 * To change this template use Tools | Options | Coding | Edit Standard Headers.
 */
using System;
using System.Collections.Generic;
using System.Windows.Forms;
using Business_Entity;
using DAOFactory;

namespace Business_Logic
{
	/// <summary>
	/// Description of BLServicio.
	/// </summary>
	public class BLServicio
	{
        DAOServicio servicioDAO;
		public BLServicio()
		{
            this.servicioDAO = new DAOFactory.DAOServicio();
		}
		
		public void SacaDetalle(int idservicio, BEServicio servicio,
		                        List<BETienda> tiendaLIST,
		                        List<BEInsumoServicio> productoLIST,
		                        List<BEEmpleado> empleadoLIST){
			
			/*servicio=dao.getServicioByID(idservicio);
			empleadoLIST=dao.getEmpleadoxServicio(idservicio);
            productoLIST=dao.getInsumoxServicio(servicio);*/
            tiendaLIST=servicioDAO.getTiendaxServicio(idservicio);
            foreach (BETienda tienda in tiendaLIST){
            	System.Windows.Forms.MessageBox.Show(tienda.Nombre);
            }
		}
		public List<BETienda> SacaDetalleTienda(int idservicio){
			DAOFactory.DAOServicio dao=new DAOFactory.DAOServicio();
		
            return dao.getTiendaxServicio(idservicio);
		}
		public List<BEEmpleado> SacaDetalleEmpleado(int idservicio){
			DAOFactory.DAOServicio dao=new DAOFactory.DAOServicio();
		
            return dao.getEmpleadoxServicio(idservicio);
		}
		
		public List<BEInsumoServicio> SacaDetalleProducto(BEServicio servicio){
			DAOFactory.DAOServicio dao=new DAOFactory.DAOServicio();
		
            return dao.getInsumoxServicio(servicio);
		}
		
		public List<BETipoServicio> getTipoServicio(){
			return  DAOFactory.DAOServicio.getAllTipoServicio();
		}
		public int nuevoServicio(BEServicio servicio){
			return DAOFactory.DAOServicio.addServicio(servicio);
		}
		
		public void guardaCambios(BEServicio servicio){
			DAOFactory.DAOServicio.updateServicio(servicio);
		}
		public void addTienda( BEServicio servicio,BETienda tienda){
			DAOFactory.DAOServicio dao=new DAOFactory.DAOServicio();
		
            dao.addTienda(servicio,tienda);
		}
		public void eliminarTienda( BETienda tienda,BEServicio servicio){
			DAOFactory.DAOServicio dao=new DAOFactory.DAOServicio();
		
            dao.deleteTienda(tienda,servicio);
		}
		public void eliminarEmpleado( BEEmpleado e,BEServicio servicio){
			DAOFactory.DAOServicio dao=new DAOFactory.DAOServicio();
		
            dao.deleteEmpleado(e,servicio);
		}
		
		
		public List<BEServicio> buscarListaServicios()
		{
			DAOFactory.DAOServicio daoServicio = new DAOFactory.DAOServicio();
			return daoServicio.buscarListaServicios();
		}
		
		public List<BEServicio> buscarListaServicios(BEServicio beServicio)
		{
			DAOFactory.DAOServicio daoServicio = new DAOFactory.DAOServicio();
			return daoServicio.buscarListaServicios(beServicio);
		}
		
		public List<BEServicio> getServicios(BETipoServicio tipo){
			/*	
			List<BEServicio> servicios = new List<BEServicio>();
			
			BEServicio s;
			
			s = new BEServicio();
			s.Codigo = -1;
			s.Precio = -1;
			s.Descripcion = "<Seleccionar>";
			
			servicios.Add(s);
			
			if (tipo.Id == -1) return servicios;
			
			s = new BEServicio();
			s.Codigo = 1;
			s.Precio = 23;
			s.Descripcion = "EMERGENCIA";
			
			if (tipo.Id == 1){
				servicios.Add(s);
			}else{
			
				s = new BEServicio();
				s.Codigo = 2;
				s.Precio = 23;
				s.Descripcion = "CORTE";
				
				servicios.Add(s);
				
				s = new BEServicio();
				s.Codigo = 5;
				s.Precio = 23;
				s.Descripcion = "LAVADO";
				
				servicios.Add(s);
			}
		
			*/
			
			BEServicio servSeleccionar = new BEServicio();
			servSeleccionar.Codigo = -1;
			servSeleccionar.Descripcion = "<Seleccionar>";
			
			if (tipo.Id == -1){
				List<BEServicio> lista = new List<BEServicio>();
				lista.Add(servSeleccionar);
				return lista;
			}
			
			DAOFactory.DAOServicio dao = new DAOFactory.DAOServicio();
			List<BEServicio> servicios = dao.getServicioByTipo(tipo.Id);
			//MessageBox.Show(servicios.Count.ToString());
			servicios.Insert(0, servSeleccionar);
			
			return servicios;
			
		}
		
		public int eliminarServicio(BEServicio beServicio)
		{
			DAOFactory.DAOServicio daoServicio = new DAOFactory.DAOServicio();
			if (daoServicio.esEliminable(beServicio)){
				
				return daoServicio.eliminarServicio(beServicio);
			}
			else
				return 2;//NO ES ELIMINABLE
		}
		
		public int agregarEmpleadoServicio(BEEmpleado empleado, BEServicio servicio)
		{
			DAOServicio daoServicio = new DAOServicio();
			return daoServicio.agregarEmpleadoServicio(empleado,servicio);
		}
		public int agregarProductoServicio(BEInsumoServicio insumo)
		{
			DAOServicio daoServicio = new DAOServicio();
			return daoServicio.agregarProductoServicio(insumo);
		}

		public int updateProductoServicio(BEInsumoServicio insumo)
		{
			DAOServicio daoServicio = new DAOServicio();
			return daoServicio.updateProductoServicio(insumo);
		}


        public void descargarArchivoLineaServicio(BELineaPedidoServicio lineaPedidoServicioBE, ref string nomArch,ref byte[] arch, ref  int error, ref  string mensajeError)
        {
            this.servicioDAO.descargarArchivoLineaServicio(lineaPedidoServicioBE,ref nomArch,ref arch, ref error,ref mensajeError);
        }
	}
}
